package es.ise.core.mbg.plugins;

import java.util.List;

import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;

/**
 * Este plugin hace que todas las clases <code>*Example</code> estén en un
 * subpaquete denominado <code>example</code>
 * 
 * @author Paco
 *
 */
public class ExampleInSubpackagePlugin extends PluginAdapter
{
	/**
	 * {@inheritDoc}
	 * 
	 * @return siempre devuelve <code>true</code> porque no hay comprobaciones que hacer
	 */
	@Override
	public boolean validate(List<String> warnings)
	{
		// no validations needed
		return true;
	}

	@Override
	public void initialized(IntrospectedTable table)
	{
		FullyQualifiedJavaType exampleType = new FullyQualifiedJavaType(table.getExampleType());
		table.setExampleType(String.format("%s.example.%s", exampleType.getPackageName(), exampleType.getShortName()));
	}

}
